package cn.wetcland.urban.framework.service;

import cn.wetcland.urban.framework.dto.CustomerCreateOrderDTO;
import cn.wetcland.urban.framework.dto.CustomerDeleteOrderListDTO;
import cn.wetcland.urban.framework.dto.CustomerEvaluationDTO;
import cn.wetcland.urban.framework.vo.*;
import cn.wetcland.urban.generator.domain.UtOrder;
import cn.wetcland.urban.generator.dto.BaseConditionSearchDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author Wetcland
* @description 针对表【ut_order】的数据库操作Service
* @createDate 2024-01-21 09:51:59
*/
public interface UtOrderService extends IService<UtOrder> {

    void handleCustomerCreateOrder(CustomerCreateOrderDTO customerCreateOrderDTO);

    void handleCustomerDeleteOrder(CustomerDeleteOrderListDTO deleteOrderListDTO);

    Page<CustomerOrderListItemVO> customerOrderList(Integer type, BaseConditionSearchDTO searchDTO);

    CustomerOrderDetailsVO customerOrderDetails(Long id);

    Page<DriverGainOrderListItemVO> handleDriverGainOrderList(BaseConditionSearchDTO searchDTO);

    void handleDriverGainOrder(Long orderId);

    Page<DriverOrderListItemVO> driverOrderList(Integer type, BaseConditionSearchDTO searchDTO);

    DriverOrderMapVO driverOrderMap(Long id);

    void driverOrderGainGoods(Long orderId);

    void driverOrderDropGoods(Long orderId);

    void customerOrderConfirmEvaluation(CustomerEvaluationDTO evaluationDTO);

    void customerOrderCancel(Long orderId);
}
